class intArray {
public:
	int& operator[] (int);
	const int& operator[] (int) const;
	intArray(int);
	~intArray();
	int get_size() const {return size; }
private:
	int* a;
	int size;
	intArray();
	int dummy_val;
};

int& intArray::operator[](int i) {
	if (i < 0 || i >= size) {
		cerr << "index" << i << "out of bounds: ";
		return dummy_val;
	}
	return a[i];
}

const int& intArray::operator[](int i) const {
	if (i < 0 || i >= size) {
		cerr << "index " << i << " out of bounds: ";
		return dummy_val;
	}

	intArray::intArray(int s) {
		a = new int[size = s];
	}

	intArray::~intArray() {
		delete[] a;
	}
